Declarative Concurrency in Java
نویسندگان
چکیده
We propose a high-level language based on rst order logic for expressing synchronization in concurrent object-oriented programs. The language allows the programmer to declaratively state the system safety properties as temporal constraints on speci c program points of interest. Higher-level synchronization constraints on methods in a class may be de ned using these temporal constraints. The constraints are enforced by the run-time environment. We illustrate our language by expressing synchronization of Java programs. However, the general underlying synchronization model we present is language independent in that it allows the programmer to glue together separate concurrent threads regardless of their implementation language and application code.
منابع مشابه
JAC: declarative Java concurrency
The Java programming language has a low-level concurrency model which is hard to use and does not blend well with inheritance. JAC is an extension of Java that introduces a higher level of concurrency, hiding threads and separating thread synchronization from application logic in a declarative fashion. The emphasis is on limiting the differences between sequential and concurrent code, thus furt...
متن کاملFlow Java: Declarative Concurrency for Java
This thesis presents the design, implementation, and evaluation of Flow Java, a programming language for the implementation of concurrent programs. Flow Java adds powerful programming abstractions for automatic synchronization of concurrent programs to Java. The abstractions added are single assignment variables (logic variables) and futures (read-only views of logic variables). The added abstr...
متن کاملConcurrent Programming Constructs and First-Class Logic Engines
Multi-threading has been adopted in today’s Prolog implementations as it became widely available in implementation languages like C or Java. An advantage of multi-threading over more declarative concurrency models like various AND-parallel and OR-parallel execution schemes, is that it maps to the underlying hardware directly: on typical multi-core machines threads and processes are mapped to di...
متن کاملJeeg: temporal constraints for the synchronization of concurrent objects
We introduce Jeeg, a dialect of Java based on a declarative replacement of the synchronization mechanisms of Java that results in a complete decoupling of the ‘business’ and the ‘synchronization’ code of classes. Synchronization constraints in Jeeg are expressed in a linear temporal logic which allows to effectively limit the occurrence of the inheritance anomaly that commonly affects concurren...
متن کاملA Uniform Transactional Execution Environment for Java
Transactional memory (TM) has recently emerged as an effective tool for extracting fine-grain parallelism from declarative critical sections. In order to make STM systems practical, significant effort has been made to integrate transactions into existing programming languages. Unfortunately, existing approaches fail to provide a simple implementation that permits lock-based and transaction-base...
متن کامل